A comprehensive full-stack web application for monitoring and analyzing CVE (Common Vulnerabilities and Exposures) data. Fetches real-time vulnerability information from the NIST API, stores it efficiently in SQLite, and presents it through an intuitive React interface.
- 🚀 Lightweight web server (Express.js + TypeScript)
- 🔗 Real-time API integration with NIST CVE database
- 💾 Efficient SQLite database storage
- 🖥️ Modern React UI with virtual scrolling for optimal performance
- 🐳 Complete Docker containerization
- 🎨 Responsive design with advanced filtering capabilities
# Clone and run with Docker (Recommended)
git clone [your-repository-url]
cd CVE-Monitor
docker-compose up --build
# Access application
# Frontend: http://localhost:8080
# API: http://localhost:8080/apiThe application automatically:
- Creates SQLite database
- Fetches CVE data from NIST API (
https://services.nvd.nist.gov/rest/json/cves/2.0?cpeName=cpe:2.3:o:microsoft:windows_10:1607) - Serves React frontend with virtual scrolling for performance
- Background processing runs every 15 seconds until all CVE data from the API is synchronized to the UI
The main dashboard showing 2487 vulnerabilities with filtering options by severity and CVSS score range
Grid view displaying individual CVE cards with severity levels, CVSS scores, and vulnerability details
- Virtual Scrolling: Handles thousands of CVE records efficiently
- Responsive Design: Grid/list views with adaptive columns
- Real-time Filtering: Search by text, severity, and CVSS score
- Auto-refresh: Keeps CVE data synchronized
- Background Sync: Continuous background processing every 15 seconds ensures all API data is loaded
- Health Monitoring: Built-in API health checks
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Health check and database status |
| GET | /api/cves |
Retrieve all CVE records |
| POST | /api/cves/sync |
Trigger manual CVE data synchronization |
| GET | /api/cves/sync/status |
Get current sync operation status |
cd backend
npm install
npm run dev # Runs on port 8080cd frontend
npm install
npm run dev # Runs on port 5173The application implements automatic background synchronization:
- Interval: Every 15 seconds
- Process: Fetches new CVE data from NIST API and updates the local SQLite database
- Continues until: All available CVE data from the API endpoint is synchronized
- UI Updates: Real-time updates as new data becomes available
- Backend: Express.js, TypeScript, SQLite
- Frontend: React, TypeScript, Vite, react-window
- Container: Docker with multi-stage builds